package pers.elonnsu.springbootmall.service;

import com.github.pagehelper.PageInfo;
import org.springframework.web.bind.annotation.RequestParam;
import pers.elonnsu.springbootmall.model.pojo.Product;
import pers.elonnsu.springbootmall.model.request.AddProductReq;
import pers.elonnsu.springbootmall.model.request.ProductListReq;

public interface ProductService {

    /**
     * 后台：添加商品
     *
     * @param addProductReq 添加商品请求对象
     */
    public void add(AddProductReq addProductReq);

    /**
     * 后台：更新商品
     *
     * @param updateProduct 需更新的商品对象
     */
    public void update(Product updateProduct);

    /**
     * 后台：删除商品
     *
     * @param id 需删除的商品的编号
     */
    public void delete(Integer id);

    /**
     * 后台：批量上下架商品
     *
     * @param ids        需要批量下架的商品id
     * @param sellStatus 上架/下架 状态
     */
    public void batchUpdateSellStatus(Integer[] ids, Integer sellStatus);

    /**
     * 后台：获取商品列表
     *
     * @param pageNum  页数
     * @param pageSize 每页最大数据量
     */
    public PageInfo<Product> listForAdmin(Integer pageNum, Integer pageSize);

    /**
     * 客户：获取商品列表
     *
     * @param pageNum  页数
     * @param pageSize 每页最大数据量
     */
    public PageInfo<Product> listForCustomer(ProductListReq productListReq);

    /**
     * 客户：获取商品详情
     *
     * @param id 商品id
     * @return 商品对象
     */
    public Product detail(Integer id);
}
